Information is stored on optical media disks in one of multiple standard formats depending on the specific format of the information. There are four commonly used commercially standard formats. The Red Book standard is used to store audio information on music compact optical disks (CDs). The Yellow Book standard is used to store information on CD-Rom. The Green Book standard is used for interactive CD. The Orange Book standard is used for Kodak's Photo CD. A CD may contain one or more tracks on which information is stored. Each track on the CD may use a different format which allows for the creation of a mixed mode CD that has a combination of multiple formats of information such as audio and video.
A sector, which is 1/75 of a second in length, is the primary logical unit for data storage on a CD. Each sector of a CD contains 2352 bytes of data. Though the formats of sectors are different depending on the standard used, each sector in any of the standard formats described above includes at least a sync field, a header field and a data field. For the standard formats, the header is preceded by a sync field which is used to synchronize the controller to the header and the data within the sector at the start of each sector.
For the standard formats, the header portion includes four bytes of information about the data in that sector including its location relative to the other sectors and the mode of data stored in that sector. The first three bytes of the header are used to identify the sector. Each sector header is unique and includes a minute byte, a second byte and a frame byte which are all used to identify the location of the sector relative to the other sectors on the CD. There are seventy five frames within a second and sixty seconds within a minute. The header also includes a mode byte which specifies the standard used to store the data within this sector.
All of the headers are consecutively numbered throughout the media. For instance, in the first sector of the media, the minute byte is equal to 0, the second byte is equal to 2 and the frame byte is equal to 0. In the next sector, the minute byte is also equal to 0, the second byte is also equal 2, but the frame byte is equal to 1. For each subsequent sector the frame byte is incremented until it equals 74. In the next sector, the second byte is incremented and the frame byte has a value of 0. The second byte is incremented for every 75 frame bytes, 0 through 74. Similarly, once the second byte is equal to 59, for the next sector, the second byte and the frame byte are equal to 0 and the minute byte is incremented. The minute byte is incremented once for every 60 times the second byte is incremented.
Within a player or drive, a CD spins at a constant linear velocity, allowing data to be read at a constant density and spacing. Therefore, the rotational speed of the disk varies from the outer edge of the disk to its center. Such players and drives use very sensitive motors for ensuring that no matter where the read head is on the disk, approximately the same amount of data is read in each second.
When searching for specific targeted data on a CD, a player or drive reads the header information for each sector and compares it to the target header information. This process is repeated for each subsequent header until the current header matches the target header. Previously, this process was done using software within the system controller. The system controller uses this software to enable the hardware to read each header and compare it to the target header until the header read from the disk matches the target header. Once there is a match, the information within the current and subsequent sectors is transferred to the host. For present applications this method of finding and identifying targeted headers has been adequate. However, as technology continues to improve and the rotational speeds of CDs increase, such a software implemented method will become limiting and too slow for most applications because, with a software implementation the controller is unable to perform other tasks while finding and identifying target sectors. What is needed is a method and apparatus which facilitates access of storage media without intervention by the system controller, which frees the system controller for completion of other tasks during storage media access.